A content delivery network (Content Delivery Network, CDN) releases content on a network “edge” nearest to a user by adding a new network architecture into an existing IP network, so that the user may obtain needed content nearby. The CDN is formed of a plurality of CDN nodes forming a tree structure or a mesh structure. The lower the position of a node is in the network structure, the nearer the node is to the user. Generally, the most popular content, that is, the content accessed with the highest frequency, is stored on the node that is near the user to enable the user to obtain a service nearby and to reduce loss of upper-level network bandwidth. A CDN node is generally formed of a plurality of media server clusters, and provides several users with streaming media services simultaneously.
In addition, the CDN technology is widely used in fields such as PC streaming media, Internet Protocol television (Internet Protocol Television, IPTV), mobile streaming media, and video surveillance, and solves experience problems due to reasons such as insufficient network bandwidth, a large number of accesses, and uneven distribution of network nodes when a user accesses streaming media content.
In a CDN system, media servers are deployed to buffer media content and provide the user with a service nearby. There are a large number of users, and the performance of a media server is limited. Therefore, generally, a group of media services form a CDN node to provide media services for the users in an area. In addition, the content popularity on the CDN varies, so the CDN nodes are deployed at different layers on the CDN. That is, the content with high popularity is stored on the node that is deployed near the user side, and the content with low popularity is stored on the node that is deployed at a high layer and far from the user side.
Currently, all CDN systems widely deployed around the world use a closed architecture. One hierarchical multi-node CDN is provided uniformly by one CDN vendor. The CDN nodes provided by different vendors cannot implement interconnection and interworking, and the CDN nodes provided by a same vendor are not open to and cannot interconnect with the CDN nodes provided by other vendors. As a result, the cost for deploying a CDN is high. When several CDNs co-exist in a country, the content on those CDNs cannot be shared, so the delivery efficiency of utilizing those CDNs cannot be maximized.
The difficulties in the interconnection and interworking of CDNs provided by different vendors and opening of CDN nodes provided by a same vendor lie in inconsistent content delivery (including content PUSH and content PULL) protocols used by nodes on CDNs provided by each vendor. Streaming protocols used on the Internet are various, thus the protocols used by different node on CDNs are various, and some nodes may use proprietary protocols for transmission. Therefore, the interconnection and interworking of CDNs and the opening and interconnection of the CDN nodes to other CDN nodes cannot be implemented by unifying protocols.
FIG. 1 is a schematic diagram of interconnection and interworking among nodes on different CDNs. On different CDNs, that is, CDN 1 and CDN 2, the nodes are classified, according to their hierarchical positions on the network, into centre nodes, backbone nodes, and edge nodes, which are configured to store content with different frequency of access from users respectively. An edge node is configured to store the content accessed by users with high frequency. A backbone node is configured to store the content accessed by users with low frequency. A centre node is configured to store the content accessed by users with lower frequency. Because no unified protocols exist currently, it is difficult to implement the interconnection and interworking among nodes on different CDNs.
FIG. 2 is a schematic diagram of an open CDN architecture. Currently, because no standards exist, it is very difficult to open a CDN. In some areas, interworking is implemented by supporting interface protocols used by nodes on different CDNs. However, the content cannot be replicated to other CDNs on a large scale, and it is highly complicated to unify interaction protocols and implement interconnection among nodes on different CDNs.
FIG. 3 and FIG. 4 illustrate a solution for implementing interconnection and interworking among nodes on CDNs provided by different vendors.
As shown in FIG. 3, a standard Internet protocols are used for interconnection and interworking to implement the interconnection among nodes on the CDNs provided by different vendors. When various Internet terminals request media services by using different Internet protocols, a CDN A node (CDN A Node), after judging that it has no content, requests the content from a CDN B node (CDN B Node). In this case a media server on the CDN B Node may forward the request messages of the terminals to the media server on the CDN B Node in a Proxy way. In this case, the media server on the CDN B Node needs to parse different Internet protocol messages and use these Internet protocols to obtain content from the media server on the CDN BNode. Addition of one type of terminal means the possible addition of one Internet protocol. As a result, both the CDN A Node and the CDN B Node need to be modified accordingly to support a new Internet protocol.
As shown in FIG. 4, if the solution illustrated in FIG. 3 is used to interconnect backbone nodes or edge nodes on the CDNs provided by other vendors to implement the interconnection and interworking of the CDNs illustrated in FIG. 3, the nodes on the CDNs provided by other vendors need use various Internet protocols to implement cascading. When one type of Internet protocol is added, at least two nodes on different CDNs need to be modified to support a new protocol message.
If the interconnection solution illustrated in FIG. 3 and FIG. 4 is used, the nodes, which are on all the CDNs and need to be cascaded, need to support various Internet protocols. When one type of Internet protocol is added, two or more CDN nodes need to be modified to support a new protocol message. In addition, when one type of Internet protocol is added, the nodes, which are on all the CDNs and need to be cascaded, need to be modified to adapt to a new Internet protocol. However, some Internet protocols are not opened. When the nodes on the CDNs need to be cascaded, those Internet protocols, which are not opened, cannot be supported, that is, terminals that use those Internet protocols, which are not opened, cannot be supported.
FIG. 5 and FIG. 6 illustrate another solution for implementing interconnection and interworking among nodes on CDNs provided by different vendors.
As shown in FIG. 5, a unified interface protocol is defined at the application layer to implement the interconnection among the nodes on CDNs provided by different vendors. The unified interface protocol used by the nodes on a CDN A (CDN A) and a CDN B (CDN B) is defined to support the transmission of using different Internet protocols. When a media server on a CDN B node (CDN B Node) receives a request from a terminal, if no content is found locally, it converts this protocol to the unified interface protocol and sends the request to a media server on a CDN A node (CDN A Node). The media server on the CDN A node sends the content to the media server on the CDN B node by using the unified interface protocol to provide streaming media services for the terminal. Addition of one type of terminal means the possible addition of one Internet protocol. In this case, if the unified interface protocol may include all the content of a new protocol, there is no need to modify cascaded interfaces on the CDN A node and the CDN B node; if the unified interface protocol cannot entirely support a new Internet protocol, this unified interface protocol needs to be modified, so the CDN A node and the CDN B node need to modify part of their cascaded interfaces.
As shown in FIG. 6, if the solution illustrated in FIG. 5 is used to interconnect backbone nodes or edge nodes on CDNs provided by other vendors to implement the interconnection and interworking of CDNs illustrated in FIG. 5, a suite of unified interface protocols needs to be defined for supporting all Internet protocols at the application layer. The nodes on CDNs provided by different vendors use the unified interface protocols to implement cascading. When one type of Internet protocol is added, it needs to be judged whether this unified interface protocol is affected. If yes, the unified interface protocol needs to be modified, and at least two nodes on different CDNs need to be modified to support a new unified interface protocol.
As shown in FIG. 7, when either the interconnection solution illustrated in FIG. 3 and FIG. 4 or the interconnection solution illustrated in FIG. 5 and FIG. 6 is used, node interconnection on different CDNs is implemented at the application layers of media servers on CDN nodes. When a CDN A node (CDN A Node) needs to access content stored on a CDN B node (CDN B Node), the data flow is shown in FIG. 7. A media server on the CDN A node requests content from a media server on a remote CDN B node by using a media protocol. The media server on this CDN B node reads the content in a local content storage by using a standard interface provided on an operating system (Operating System, OS) and, after the content is obtained at the application layer, forwards the content to the media server on the CDN A node. When the content is transmitted between the media server on the CDN A node and the media server on the CDN B node, the interface of the operating system is invoked and the content is transmitted through a link layer (Link Layer), like all applications that need to send messages through a network port. In addition, storage networking and access vary with different storage networking mechanisms (such as NAS (network-attached storage), SAN (storage area network), and DAS (direct-attached storage)).
When the interconnection solution illustrated in FIG. 5 and FIG. 6 is used, a unified interface protocol needs to be defined to support all Internet protocols. It is very complicated to define this unified interface protocol because the interface protocol needs to support different transmission protocols, different file formats, and different coding formats. When one type of Internet protocol is added, it needs to be judged whether this unified interface protocol is affected. If yes, this interface protocol needs to be modified, and all the CDNs that need to be cascaded need to be modified to adapt to a new unified interface protocol. In addition, some Internet protocols are not opened and the unified interface protocol cannot support those Internet protocols that are not opened, that is, terminals that use those Internet protocols, which are not opened, cannot be supported.
To sum up, difficulties in implementing the interconnection and interworking among the nodes on different CDNs are as follows:
1. As there are a variety of Internet protocols, it is complicated that the media servers on the nodes on different CDNs or on a same CDN are compatible with all the Internet protocols.
2. The interconnection and interworking among the nodes on different CDNs or on a same CDN rely on the implementation of various Internet protocols, or defining a complicated unified interface protocol that is compatible with all Internet protocols.
3. Currently, a method used to interconnect and interwork with the nodes on different CDNs is closely related to the Internet protocols. With the addition and change of the Internet protocols, the CDN nodes need to be modified constantly to adapt to new Internet protocols.